package com.irdstudio.efp.esb.common.util;

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
  * 本地字典项值转为外部系统字典项值
  * @author qiuyf
  * @since 2019年1月24日 上午10:15:52
  * @version 1.0
 */
public class SDicMappingClient extends PropertyPlaceholderConfigurer {

	private static final Map<String, String> mapClient = new HashMap<>();
	
	/**
	  * 读取disMapping.properties，组装成 KEY: systemIdOpptypeEnname,VALUE:enname
	  * @param beanFactoryToProcess
	  * @param props
	  * @throws BeansException
	  * @author qiuyf
	  * @since 2019年1月24日 上午10:16:23
	  * @version 1.0
	 */
	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
		super.processProperties(beanFactoryToProcess, props);
		for (Object key : props.keySet()) {
			String keyStr = key.toString();
			String value = props.getProperty(keyStr);
			String[] temp = value.split("_");
			if(temp.length == 4) {
				mapClient.put(temp[0].trim()+temp[1].trim()+"_"+temp[2].trim(), temp[3].trim());
			}
		}
	}
	
	/**
	  * 通过字典项类型、本地字典项值获取外部系统字典项值
	  * @param systemId 对接系统英文简称
	  * @param opttype  字典项类型
	  * @param value    字典项值
	  * @return String
	  * @author qiuyf
	  * @since 2019年1月24日 下午2:53:29
	  * @version 1.0
	 */
	public static String getExternalSysDicVal(String systemId, String opttype, String value){
		String mapStr = systemId.trim() + opttype.trim() + "_" + value.trim();
		if(mapClient.containsKey(mapStr)) {
			return mapClient.get(mapStr);
		}
		return value;
	}
}
